<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>质数练习补充</title>
</head>
<body>
    
</body>
</html>
<script>
    // 优化前 10000 ≈ 150ms  优化后 10000 ≈ 2ms ⭐
    console.time("测试一")
    for(var i =2; i<=10000;i++){
            var z = true
            for(var j=2;j<i;j++){
                if(i%j == 0){
                    z = false;
                }
            }
            if(z==true){
                //document.write("<br>"+i);
            }

        }
    console.timeEnd("测试一");

    //  测试如下的程序的性能
    //  在程序执行前，开启计时器
    //  console.time("计时器的名字") 可以用来开启一个计时器
    //  他需要一个字符串作为参数，这个字符串将会作为计时器的标识
    console.time("测试二");   //  计时器 ⭐
    
    // 打印2 - 100 之间所有的数
    for(var i=2; i<=10000; i++){

        //创建一个布尔值，用来保存结果，默认 i 是质数
        var k = true;

        // 判断 i 是否是质数
        // 获取 2-i 之间的所有的数
        for(var j=2; j<=Math.sqrt(i); j++){

            //判断 i 是否能被 j 整除
            if(i%j == 0){
                // 如果进入判断，则证明 i 不是质数
                k = false;

                // 一旦进入判断，则证明 i 不可能是质数，此时循环再执行，没有意义
                // 使用 break 来结束循环
                break;

                // 不加 break  150ms
                // 使用 break   20ms

                // 原值 j < i   20ms
                // 修改 j <= 后  4ms
            }
        }
        // 如果是质数，则打印 i 的值
        if(k){
            //document.write(i+"&nbsp;");
        }
    } 

    // 终止计时器
    // console.timeEnd() 用来停止一个计时器
    console.timeEnd("测试二");    //  计时器结束 ⭐

</script>